package com.lft.freshordering.service;


import java.util.List;
import java.util.Map;

import com.lft.freshordering.entity.VO.AuditVO;
import com.lft.freshordering.entity.VO.BilVO;
import com.lft.freshordering.entity.VO.OrderVO;
import com.lft.freshordering.entity.Orders;
import com.lft.freshordering.entity.VO.BillAllVO;


/**
 * <p>
 * 服务类
 * </p>
 *
 * @author tyhxzy
 * @since 2024-12-02
 */
public interface IOrdersService {
    List<Map> selectordersByid(Integer uid);

    OrderVO selectOrders(String oid);
    List<OrderVO> selectAllOrders();

    List<OrderVO> selectAllOrders1();

    List<OrderVO> selectAllOrders2();

    int updateStatus(Integer id);

    int updateDelivery(byte[] delivery,Integer id);

    int updateStatus1(Integer id);


    List<OrderVO> selectordersByiddym(Integer uid);


    int updateOrderStatus(String id, String confirm);

    List<OrderVO> selectOrders1(Integer uid);

    List<OrderVO> selectOrders2(Integer uid);
    void autoConfirmOrders();
    //zjb向上
//-----------------------------------------------------------------------------------------------------------------------
//ght向下
    BillAllVO selectall();

    //通过用户id查询 用户所拥有的全部订单基本信息
    BilVO selectorderbyuserid(String shopname);
    /**
     * 更新订单的支付状态
     *
     * 此方法用于在系统中更新一个订单的支付状态当一个订单被用户支付后，
     * 系统调用此方法来标记订单为已支付状态这是订单处理流程中的关键步骤，
     * 确保系统能够准确跟踪订单的支付情况
     *
     * @param id  订单对象，包含需要更新的订单信息特别是订单的支付状态
     * @return 返回值为int类型，表示更新操作的结果通常，0表示更新失败，
     *         非0值表示更新成功，具体数字可能代表不同的成功状态或者影响的行数
     */
//-------------------------------------------------------------------------------------------------------
    int updatePaystate(Map map);

    /**
     * 更新订单的实际支付金额
     * 此方法用于更新订单中的实际支付金额，可能在多种情况下调用，例如促销活动、折扣应用或支付调整
     *
     * @param orders 订单对象，包含需要更新的实际支付金额信息
     * @return 影响的行数，通常为1表示成功更新，0表示未找到对应订单
     */
    int updateRealpayInt(Orders orders);

    /**
     * 上传订单图片
     *
     * 该方法用于将订单相关的图片上传到服务器，并将其与特定的订单关联起来
     * 它接受一个Orders对象作为参数，该对象包含了订单的信息，包括订单ID、用户ID等
     *
     * @param orders Orders对象，代表要上传图片的订单
     * @return 返回上传操作的结果，通常是一个表示成功或失败的整数值
     */
    int uploadOrderImage(Orders orders);

    /**
     * 根据订单ID选择订单信息
     *
     * @param id 订单的唯一标识符
     * @return 返回一个Orders对象列表，其中包含与给定ID相匹配的订单信息如果找不到匹配的订单，则返回空列表
     */
    List<Orders> selectid(Integer id);


    List<AuditVO> selectorderstaus(Integer id);


    Map selectOrderDetail2(String oid);

    List<Map> selectOrderDetail1(Map map);
}

